# data_manager.gd
extends Node

# ========================================================
# 游戏动态数据管理器
# 职责：
# 管理运行时动态数据（玩家进度、游戏状态等）
# ========================================================

#region 信号
#endregion

#region 核心数据
# ------------------------------------------------------
# 军队数据容器（需实现ArmyData类及其序列化方法）
var army_data: ArmyData = ArmyData.new()
# 关卡进度数据容器（需实现LevelData类及其序列化方法）
var level_data: LevelData = LevelData.new()

var all_troop_types := GameConstant.ALL_TROOP_TYPES

var available_troop_types := []

var normal_enemies := GameConstant.NORMAL_ENEMIES

var elite_enemies := GameConstant.ELITE_ENEMIES

var boss_enemies := GameConstant.BOSS_ENEMIES

var race_data := GameConstant.RACE_DATA

var current_race := ""
#endregion


#region 数据访问接口
func _ready() -> void:
	GlobalSignal.gs_gamedata_ready.emit()

func reset() -> void:
	army_data.reset()
	level_data.reset()
	available_troop_types = []


func to_dict() -> Dictionary:
	return {
		"army_data": army_data.to_dict(),
		"level_data": level_data.to_dict(),
		"available_troop_types": available_troop_types
	}
#endregion
